package antlr4.definitive.d4_expr.d4_4_1_rows.run;

import antlr4.definitive.d4_expr.d4_4_1_rows.gen.RowsLexer;
import antlr4.definitive.d4_expr.d4_4_1_rows.gen.RowsParser;
import cn.hutool.core.io.FileUtil;
import org.antlr.v4.runtime.CharStreams;
import org.antlr.v4.runtime.CodePointCharStream;
import org.antlr.v4.runtime.CommonTokenStream;


public class Col {

    public static void main(String[] args) {
        if (args.length > 0) {
            String arg = args[0];
            String content = FileUtil.readString(arg, "UTF-8");
            System.out.println("读取文件" + arg + ",内容:\n" + content);
            CodePointCharStream input = CharStreams.fromString(content);
            System.out.println("token:");

            RowsLexer lexer = new RowsLexer(input);
//            List<? extends Token> allTokens = lexer.getAllTokens();
//            System.out.println(allTokens);   //用于查看token识别的是否正确，文本类型的建议使用文本编辑器修改，而不是用idea，idea的Tab好像识别不到。
            RowsParser parser = new RowsParser(new CommonTokenStream(lexer), 3);//第二个参数写死1|2|3 测试看打印的是哪一行
            parser.setBuildParseTree(false);//不需要浪费时间建立语法分析树
            parser.file();//开始语法分析

        } else {
            System.err.println("不推荐手写字符串，还是读取一个已经存在的文件吧");
        }
    }

}
